Parity Check Matrix Generation Method, Data Transmission System, Encoding Device, Decoding Device, and a Parity Check Matrix Generation Program

ABSTRACT

A method is disclosed that allows the easy generation of low-density parity-check codes that can realize superior error-correcting characteristics. A processor ( 50 ) of a transmission line encoder constructs parity check matrix H from partial matrix H 1  of m rows and k columns on the left side and partial matrix H 2  of m rows and m columns on the right side. The processor ( 50 ) generates partial matrix H 2  as a unit matrix. The processor ( 50 ) generates partial matrix H 1  to satisfy the conditions that, when any two rows contained in partial matrix H 1  are selected, the two rows have periods that are relatively prime, or when the periods are identical, the two rows have different phases. The processor ( 50 ) then joins partial matrix H 1  and partial matrix H 2  to generate parity check matrix H.

This is a Divisional Application of U.S. application Ser. No. 10/586,541filed Jul. 19, 2006, which claims priority from PCT Application No.PCT/JP2005/000471 filed Jan. 17, 2005, and from Japanese PatentApplication No. 2004-011923 filed Jan. 20, 2004, which applications areincorporated herein by reference.

TECHNICAL FIELD

The present invention relates to a parity check matrix generation methodand parity check matrix generation program by which an encoder (encodingdevice) and a decoder (decoding device), which use LDPC (Low-DensityParity-Check) codes as error-correcting codes, generate a parity checkmatrix; and to a data transmission system, an encoding device and adecoding device that apply the parity check matrix generation method andparity check matrix generation program.

BACKGROUND ART

Error-correcting codes are typically used when transmitting data by wayof transmission lines in which transmission errors may occur. FIG. 1 isa block diagram showing an example of the configuration of a datatransmission system in which data are transmitted by way of atransmission line. For example, the data transmission system shown inFIG. 1 is provided with transmission line encoder 11 on the transmittingside and transmission line decoder 13 on the receiving side by way oftransmission line 12. Using transmission line encoder 11 andtransmission line decoder 13 to implement error correction eliminatesthe effect of transmission errors upon data that are sent from datagenerator 10 and to data consuming device 14.

Reed-Solomon codes and Turbo codes are known error-correcting codes. Inaddition, LDPC codes that exhibit capabilities that approach logiclimits (Shannon limits) are receiving attention in recent years aserror-correcting codes.

If k is the message length of messages (data) that have undergone LDPCencoding and n is the codeword length following encoding, parity checkmatrix H of LDPC code can be represented as a matrix of (n−k) rows and ncolumns. If the messages are S=(s1, s2, . . . , sk) and the codewordsare C=(c1, c2, . . . , cn), codewords C are obtained by multiplyinggenerator matrix G of k rows and n columns by message S. In other words,codewords C are obtained by finding C=SG. Since all codewords C satisfythe condition HCt=0, GHt=0. Further, Ct indicates the transposed vectorof codeword C, and Ht indicates the transposed matrix of parity checkmatrix H.

As an example of the application of LDPC code, Non-patent Document 1describes an example of the application of LDPC codes as acountermeasure for packet loss that occurs in a packet exchange networkin which packet series is subjected to LDPC encoding.

The error-correcting characteristics of LDPC codes are determined by aparity check matrix. Non-patent Document 2 discloses a logical analysisof the error-correcting characteristics of LDPC codes. According toNon-patent Document 2, the error-correcting characteristics of LDPCcodes are chiefly determined by the weighting distribution of the paritycheck matrix. The parity check matrix is almost entirely made up fromelement “0” but contains sporadic elements “1.” Weighting indicates thenumber of elements “1” that are contained in each row and each column inthe parity check matrix.

The parity check matrix proposed by Robert G. Gallager, the originatorof LDPC codes, is a matrix in which the weighting of rows and columns isuniform. LDPC codes according to the parity check matrix proposed byRobert G. Gallager are referred to as “regular” LDPC codes. FIG. 2 is anexplanatory view showing an example of a parity check matrix of regularLDPC code. In the parity check matrix shown in FIG. 2, the weighting ofeach row, i.e., the number of elements “1,” is fixed (uniform) at WR,and the weighting of each column, i.e., the number of elements “1,” isfixed (uniform) at WC.

In contrast, Non-patent Document 2 clearly shows that LDPC codesaccording to a parity check matrix in which weighting is non-uniform andthat has a specific distribution have better error-correctingcharacteristics than regular LDPC codes. LDPC codes realized by a paritycheck matrix in which weighting is non-uniform and that has a specificdistribution are referred to as irregular LDPC codes.

As a method of generating a parity check matrix having an optimumweighting distribution, Patent Document 1 describes an LDPC code paritycheck matrix generation method in which a parity check matrix isgenerated based on encoding rate. In the LDPC code parity check matrixgeneration method described in Patent Document 1, a linear programmingmethod is used to determine the weighting distribution. Then, afterdetermining the number of elements “1” per row and column, a paritycheck matrix is generated by using pseudo-random numbers to put in thepositions of elements “1.”

The error-correcting characteristics of the parity check matrix are notdetermined merely by the weighting distribution of rows and columns.Even given the optimum weighting distribution of rows and columns of aparity check matrix, it is known that, when the parity check matrix isrepresented using a bipartite graph (Tanner Graph), the occurrence ofshort loops having a length of 4 on the bipartite graph results in adrastic degradation of the error-correcting characteristics.

FIGS. 3A and 3B are explanatory views showing an example of a bipartitegraph corresponding to a parity check matrix. FIG. 3A shows an exampleof a parity check matrix, and FIG. 3B shows a bipartite graph thatrepresents the parity check matrix shown in FIG. 3A. In FIG. 3B,variable nodes correspond to each bit of a codeword, and check nodescorrespond to each row of the parity check matrix. In addition, theedges that join the nodes represent elements “1” in the parity checkmatrix. As shown in FIGS. 3A and 3B, loops having a length of 4 willoccur in a bipartite graph when there are two or more columns (commoncolumns) having elements “1” shared between any two rows in the paritycheck matrix.

The decoding of LDPC codes is typically carried out by using asum-product decoding method to estimate the original message based oncodewords in which errors are superposed. If no loops occur in theparity check matrix, the sum-product decoding method is a Maximum aposteriori Probability (MAP) estimation. If loops exist in the paritycheck matrix, sum-product decoding method is degraded from MAPestimation and only approximates MAP estimation. As a result, a numberof parity check matrix generation methods have been proposed forpreventing the occurrence of loops in the parity check matrix.

In addition, the parity check matrix not only determines theerror-correcting characteristics, but also determines the calculationcosts (number of calculations) in encoding and the calculation costs forgenerating a generator matrix. Typically, O (n2) calculations arenecessary for carrying out encoding, but O (n3) calculations arenecessary for calculating a generator matrix.

To reduce the calculation cost for calculation of the generator matrixand the calculation cost in encoding, a method has been proposed inwhich a portion of a parity check matrix is constructed as a unit matrixor a triangular matrix to limit the number of calculations to O (n)during calculation for a generator matrix or encoding.

For example, Patent Document 2 describes a low-density parity-checkencoding method in which the power of square matrices that representcyclic shifts are used as partial matrices, and these partial matricesare assembled to make up a parity check matrix to prevent the generationof short loops. In the low-density parity-check encoding methoddescribed in Patent Document 2, the parity check matrix is triangulatedat the same time that the generation of loops is prevented. Then, bymaking the generator matrix and parity check matrix equivalent, thenumber of calculations when encoding can be limited to O(n). Inaddition, in the low-density parity-check encoding method described inPatent Document 2, the cost of generating the parity check matrix is lowbecause the parity check matrix can be generated by merely using regularshifts.

Non-Patent Document 1: Michael G. Luby, Michael Mitzenmacher, M. AminShokrollahi, Daniel A. Spielman, Efficient Erasure Correcting Codes,“IEEE Transactions on Information Theory,” February 2001, Vol. 47, No.2, pp. 569-584.

Non-Patent Document 2: Thomas J. Richardson, M. Amin Shokrollahi, Designof Capacity-Approaching Irregular Low-Density Parity-Check Codes, “IEEETransactions on Information Theory,” February 2001, Vol. 47, No. 2, pp.619-637.

Patent Document 1: JP-A-2003-198383 (pp. 4-10, FIGS. 1-18)

Patent Document 2: JP-A-2003-115768 (pp. 6-10, FIGS. 1-9)

DISCLOSURE OF THE INVENTION

The LDPC code parity check matrix generation method described in PatentDocument 1 enables a reduction of the cost of generating a parity checkmatrix. However, this method cannot reduce the calculation costs forcalculating a generator matrix from a parity check matrix or thecalculation costs when using the calculated generator matrix to encode.Further, this method necessitates complex calculations that usepseudo-random numbers and a linear programming method for generating aparity check matrix.

In addition, in the low-density parity-check encoding method describedin Patent Document 2, the row weighting and column weighting of a matrixbefore carrying out triangulation are uniform, and the generated paritycheck matrix approaches the parity check matrix of a regular LDPC code.As a result, a parity check matrix cannot be generated to always producean improvement in the error-correcting characteristics.

It is therefore an object of the present invention to provide a paritycheck matrix generation method, a data transmission system, an encodingdevice, a decoding device, and a parity check matrix generation programthat can realize superior error-correcting characteristics inlow-density parity-check codes and that can generate a parity checkmatrix by a simple method.

It is another object of the present invention to provide a parity checkmatrix generation method, a data transmission system, an encodingdevice, a decoding device, and a parity check matrix generation programthat can limit calculation costs when generating a parity check matrixand when encoding.

The parity check matrix generation method according to the presentinvention: is a parity-check matrix generation method for generatingparity check matrix H of m rows and n columns in low-densityparity-check code; wherein parity check matrix H is made up from partialmatrix H1 of m rows and k columns (where k=n−m) and partial matrix H2 ofm rows and m columns; and wherein the positions of matrix elements “1”of each row of partial matrix H1 are determined to satisfy theconditions that, when any two rows contained in partial matrix H1 areselected, the periods of the two rows are relatively prime, or when theperiods of the two rows are identical, the phases are different.

In addition, the parity check matrix generation method may be configuredsuch that period list P={p(1), p(2), . . . , p(PL)} (where p(1)-p(PL)are relatively prime) is determined; and, for each of elements p(j) ofperiod list P, a maximum p(j) rows of partial matrix H1 are generated inwhich the periods are p(j) and the phases are different. According tothis configuration, the mere input of period list P enables the easygeneration of partial matrix H1.

The parity check matrix generation method may also be configured suchthat elements from element p(2) to element p(PL) are generated based onthe leading element p(1). According to this configuration, the mereinput of the leading element of period list P automatically determinesperiod list P and enables the easy generation of partial matrix H1.

The parity check matrix generation method may also be configured togenerate elements p(j) of period list P such that elements p(j) are thesmallest values among values that satisfy the condition of beingrelatively prime with all elements from leading element p(1) to elementp(j−1). According to this configuration, the mere input of the leadingelement of period list P automatically determines period list P andenables the easy generation of a parity check matrix.

The parity check matrix generation method may also be configured togenerate elements p(j) of period list P such that elements p(j) are thesmallest values among values that each satisfy the condition of being aprime number greater than the preceding element p(j−1). According tothis configuration, the mere input of the leading element of period listP automatically determines period list P and enables the easy generationof a parity check matrix.

The parity check matrix generation method may also be configured togenerate a unit matrix as partial matrix H2. According to thisconfiguration, the cost of generating a generator matrix and the cost ofencoding can be reduced compared to a case in which the parity checkmatrix does not contain a unit matrix.

The parity check matrix generation method may also be configured togenerate a lower triangular matrix as partial matrix H2 by determiningthe positions of matrix elements “1” within a lower triangle such thatthe conditions are satisfied that, when any two rows contained withinpartial matrix H2 are selected, the periods of the two rows arerelatively prime, or when the periods of the two rows are identical,their phases are different. According to this configuration, the cost ofgenerating a generator matrix and the cost of encoding can be reducedcompared to a case in which the parity check matrix does not contain alower triangular matrix.

The parity check matrix generation method may also be configured suchthat period list P={p(1), p(2), . . . , p(PL)} (where p(1)-p(PL) arerelatively prime) is determined, and, for each of elements p(j) ofperiod list P, a maximum of p(j) rows of partial matrix H2 are generatedin which the periods are p(j) and the phases are different. According tothis configuration, the mere input of period list P enables the easygeneration of partial matrix H2.

The parity check matrix generation method may also be configured togenerate elements from element p(2) to element p(PL) based on leadingelement p(1). According to this configuration, the mere input of theleading element of period list P enables the automatic determination ofperiod list P and the easy generation of partial matrix H2.

The parity check matrix generation method may also be configured togenerate elements p(j) of period list P such that elements p(j) are thesmallest values of values that satisfy the condition of being relativelyprime with all elements from leading element p(1) to element p(j−1).According to this configuration, the mere input of the leading elementof period list P enables the automatic determination of period list Pand the easy generation of partial matrix H2.

The parity check matrix generation method may also be configured togenerate elements p(j) of period list P such that elements p(j) are thesmallest values of values that each satisfy the condition of being aprime number greater than the preceding element p(j−1). According tothis configuration, the mere input of the leading element of the periodlist P enables the automatic determination of period list P and the easygeneration of partial matrix H2.

The parity check matrix generation method may also be a parity checkmatrix generation method for generating a parity check matrix of m rowsand n columns in a low-density parity-check code; and may be configuredto generate row r of a parity check matrix by using period list P={p(1),p(2), p(PL)} (where p(1)-p(PL) are relatively prime) to: set as “1”those matrix elements that correspond to columns c that satisfy theconditions, using integer i and prescribed value F(j), 1≦c≦n−m andc=p(j)·i+r+F(j) if N(j−1)+1≦r≦N(j), where N(j) is defined as the sum ofvalues from element p(1) to element p(j) of period list P, and moreover,N(0) is defined as “0”; to set as “1” those matrix elements thatcorrespond to columns c that satisfy the condition c=n−m+r; and to setas “0” those matrix elements that do not satisfy any of the conditions.

According to this configuration, instead of generating for each partialmatrix, a parity check matrix of m rows and n columns can be generatedas a batch to satisfy the conditions that, when any two rows areselected, the two rows have periods that are relatively prime, or whenthe periods are identical, the two rows have different phases. Inaddition, instead of generating for each partial matrix, a parity checkmatrix can be generated as a group to contain a unit matrix.

As a result, superior error-correcting characteristics can be realizedin low-density parity-check codes, and a parity check matrix can begenerated by a simple method. In addition, the cost of generating agenerator matrix and the cost of encoding can be reduced compared to acase in which parity check matrix H does not include a unit matrix.

The parity check matrix generation method may also be configured suchthat F(j)=−N(j−1).

The parity check matrix generation method may also be configured suchthat F(j)=n−m.

In addition, the parity check matrix generation method may be a paritycheck matrix generation method for generating a parity check matrix of mrows and n columns in low-density parity-check codes; and may beconfigured to generate row r of a parity check matrix by using periodlist P={p(1), p(2), . . . , p(PL)} (where p(1)-p(PL) are relativelyprime) to: set as “1” those matrix elements that correspond to columns cthat satisfy the conditions, using integer i, 1≦c≦n−m+r andc=p(j)·i+n−m+r if N(j−1)+1≦r≦N(j), where N(j) is defined as the sum ofvalues from element p(1) to element p(j) of period list P, and moreover,N(j) is defined as “0”; and to set as “0” matrix elements that do notsatisfy these conditions. According to this configuration, withoutgenerating for each partial matrix, a parity check matrix of m rows andn columns can be generated as a group to satisfy the conditions that,when any two rows are selected, the two rows have periods that arerelatively prime, or when the periods are identical, the two rows havedifferent phases. In addition, a parity check matrix can be generated asa group to contain a lower triangular matrix without generating for eachpartial matrix. Accordingly, superior error-correcting characteristicscan be realized in low-density parity-check codes, and a parity checkmatrix can be generated by a simple method. Further, the cost ofgenerating a generator matrix and the cost of encoding can be reducedcompared to a case in which a parity check matrix does not contain alower triangular matrix.

The parity check matrix generation method may also be a parity checkmatrix generation method for generating a parity check matrix of m rowand n columns in low-density parity-check codes; and may be configuredto generate row r of a parity check matrix by using period list P={p(1),p(2), p(PL)} (where p(1)-p(PL) are relatively prime) and period listQ={q(1), q(2), . . . , q(QL)} (where q(1)-q(QL) are relatively prime)to: set as “1” those matrix elements that correspond to columns c thatsatisfy the conditions, using integer i and a prescribed value F(j),1≦c≦n−m and c=p(j)·i+r+F(j) if N(j−1)+1≦r≦N(j), where N(j) is defined asthe sum of values from element p(1) to element p(j) of period list P,and moreover, N(j) is defined as “0”; to set as “1” those matrixelements that correspond to columns c that satisfy the conditions, usinginteger i, n−m+1≦c≦n−m+r and c=q(j)·i+n−m+r if M(j−1)+1≦r≦M(j), whereM(j) is defined as the sum of values from element q(1) to element q(j)of period list Q, and moreover, M(j) is defined as “0”; and to set as“0” those matrix elements that do not satisfy any of these conditions.According to this configuration, a parity check matrix of m rows and ncolumns can be generated as a group based on two types of period listssuch that the conditions are satisfied that, when any two rows areselected, the two rows have periods that are relatively prime, or whenthe periods are identical, the two rows have different phases. Inaddition, the parity check matrix can be generated as a group to containa lower triangular matrix.

The parity check matrix generation method can also be configured suchthat F(j)=−N(j−1).

The parity check matrix generation method can also be configured suchthat F(j)=n−m.

The parity check matrix generation method can also be configured todetermine period list P by generating elements from element p(2) toelement p(PL) based on leading element p(1). According to thisconfiguration, the mere input of the leading element of period list Penables the automatic determination of period list P and the easygeneration of a parity check matrix.

The parity check matrix generation method may also be configured togenerate elements p(j) of period list P such that elements p(j) are thesmallest values of values that satisfy the condition of being relativelyprime with all elements from leading element p(1) to element p(j−1).According to this configuration, the mere input of the leading elementof period list P enables the automatic determination of period list Pand the easy generation of a parity check matrix.

The parity check matrix generation method may also be configured togenerate elements p(j) of period list P such that elements p(j) are thesmallest values of values that each satisfy the condition of being aprime number greater than the preceding element p(j−1). According tothis configuration, the mere input of the leading element of period listP enables the automatic determination of period list P and the easygeneration of a parity check matrix.

The data transmission system according to the present invention is adata transmission system that includes: an encoding device for encodingdata and a decoding device for decoding data that have been encoded;wherein the encoding device, based on prescribed parameters, uses aparity check matrix generation method to generate a parity check matrix,uses the generated parity check matrix to perform low-density parityencoding to convert data to codewords, and transmits the convertedcodewords to the decoding device by way of a transmission line; and thedecoding device, based on parameters identical to the parameters used bythe encoding device, uses the parity check matrix generation method togenerate a parity check matrix, and uses the generated parity checkmatrix to decode the codewords that have been received from the encodingdevice to convert to the data that preceded encoding.

The encoding device may be configured to generate the parity checkmatrix based on a prescribed period list P as the parameters, and thedecoding device can be configured to generate a parity check matrixbased on period list P identical to period list P used by the encodingdevice. According to this configuration, simply determining period listP enables the easy generation of a parity check matrix.

Further, the encoding device may also be configured to determine periodlist P by generating elements from element p(2) to element p(PL) basedon the leading element p(1) of period list P as the parameters and togenerate a parity check matrix based on the determined period list, andthe decoding device may be configured to determine period list P bygenerating elements from element p(2) to element p(PL) based on elementp(1) that is identical to element p(1) used by the encoding device, andto generate a parity check matrix based on the determined period list.According to this configuration, merely determining the leading elementof period list P enables the automatic determination of period list Pand the easy generation of a parity check matrix.

The encoding device may also be configured to generate elements p(j) ofperiod list P such that elements p(j) are the smallest values of valuesthat satisfy the condition of being relatively prime with all elementsfrom leading element p(1) to element p(j−1); and the decoding device maybe configured to generate elements p(j) of period list P such thatelements p(j) are the smallest values of values that satisfy thecondition of being relatively prime with all elements from leadingelement p(1) to element p(j−1). According to this configuration, merelydetermining the leading element of period list P enables the automaticdetermination of period list P and the easy generation of a parity checkmatrix.

In addition, the encoding device may also be configured to generateelements p(j) of period list P such that elements p(j) are the smallestvalues of the values that each satisfy the condition of being a primenumber greater than the preceding element p(j−1); and the decodingdevice may be configured to generate elements p(j) of period list P suchthat elements p(j) are the smallest values of values that each satisfythe condition of being a prime number greater than the preceding elementp(j−1). According to this configuration, merely determining the leadingelement of period list P enables the automatic determination of periodlist P and the easy generation of a parity check matrix.

The encoding device may also be configured to transmit parameters to thedecoding device by way of a transmission line, and the decoding devicemay be configured to use the parameters received from the encodingdevice to generate a parity check matrix based on parameters identicalto the parameters used by the encoding device. According to thisconfiguration, the unity of the period list used by the encoding deviceand the period list used by the decoding device can be easilymaintained.

The decoding device may also be configured to transmit parameters to theencoding device by way of a transmission line, and the encoding devicemay be configured to use the parameters received from the decodingdevice to generate a parity check matrix based on parameters identicalto parameters used by the decoding device. According to thisconfiguration, the unity of the period list used by the encoding deviceand the period list used by the decoding device can be easilymaintained.

The encoding device may also be configured to transmit parameters foreach of prescribed time intervals to the decoding device by way of atransmission line, and the decoding device may be configured to use theparameters received from the encoding device to thus generate a paritycheck matrix based on parameters identical to parameters used by theencoding device. According to this configuration, the unity of theperiod list used by the encoding device and the period list used by thedecoding device can be easily maintained.

The decoding device may also be configured to transmit parameters foreach of prescribed time intervals to the encoding device by way of atransmission line, and the encoding device may be configured to use theparameters received from the decoding device to generate a parity checkmatrix based on parameters identical to parameters used by the decodingdevice. According to this configuration, the unity of the period listused by the encoding device and the period list used by the decodingdevice can be easily maintained.

The encoding device may also be configured to transmit parameters to thedecoding device by way of a transmission line when the content ofparameters has been updated, and the decoding device may be configuredto use parameters received from the encoding device to generate a paritycheck matrix based on parameters identical to parameters used by theencoding device. According to this configuration, the unity of theperiod list used by the encoding device and the period list used by thedecoding device can be maintained in real time.

The decoding device may also be configured to transmit parameters to theencoding device by way of a transmission line when the content ofparameters has been updated, and the encoding device may be configuredto use parameters received from the decoding device to generate a paritycheck matrix based on parameters identical to parameters used by thedecoding device. According to this configuration, the unity of theperiod list used by the encoding device and the period list used by thedecoding device can be maintained in real time.

The encoding device according to the present invention, based onprescribed parameters, uses a parity check matrix generation method togenerate a parity check matrix, uses the generated parity check matrixto perform low-density parity encoding to convert data to codewords, andtransmits the converted codewords to a decoding device by way of atransmission line.

The decoding device according to the present invention receivescodewords from the encoding device by way of a transmission line, and,based on prescribed parameters, uses a parity check matrix generationmethod to generate a parity check matrix, uses the generated paritycheck matrix to decode the received codewords and convert to the datathat preceded encoding.

The parity check matrix generation program of the present invention is aparity check matrix generation program for generating parity checkmatrix H of m rows and n columns in low-density parity-check code; andcauses a computer to execute processes of: constructing parity checkmatrix H from partial matrix H1 of m rows and k columns and partialmatrix H2 of m rows and m columns (where m=n−k); and determining thepositions of matrix elements “1” of each row of partial matrix H1 tosatisfy the conditions that, when any two rows contained in partialmatrix H1 are selected, the periods of the two rows are relativelyprime, or the periods of the two rows are identical and the phases aredifferent.

The parity check matrix generation program may also be a parity checkmatrix generation program for generating a parity check matrix of m rowsand n columns in low-density parity-check code, and may be configured tocause a computer to execute processes of: generating row r of a paritycheck matrix by using period list P={p(1), p(2), . . . , p(PL)} (wherep(1)-p(PL) are relatively prime) to: set as “1” those matrix elementsthat correspond to columns c that satisfy the conditions, using integeri and a prescribed value F(j), 1≦c≦n−m and c=p(j)·i+r+F(j) ifN(j−1)+1≦r≦N(j), where N(j) is defined to be the sum of values fromelement p(1) to element p(j) of period list P, and moreover, N(j) isdefined to be “0”; and to set as “0” those matrix elements that do notsatisfy any of these conditions. According to this configuration, aparity check matrix of m rows and n columns can be generated as a groupwithout generating for each partial matrix, such that the conditions aresatisfied that, when any two rows are selected, the two rows haveperiods that are relatively prime, or when the periods are identical,the rows have different phases. In addition, a parity check matrix canbe generated as a group to contain a unit matrix without generating eachpartial matrix. Accordingly, superior error-correcting characteristicscan be realized in low-density parity-check code, and a parity checkmatrix can be generated by a simple method. Further, the cost ofgenerating a generator matrix and the cost of encoding can be reducedcompared to a case in which parity check matrix H does not include aunit matrix.

The parity check matrix generation program may also be a parity checkmatrix generation program for generating a parity check matrix of m rowsand n columns in low-density parity-check code, and may be configured tocause a computer to execute processes of: generating row r of a paritycheck matrix by using period list P={p(1), p(2), . . . , p(PL)} (wherep(1)-p(PL) are relatively prime) to set as “1” matrix elements thatcorrespond to columns c that satisfy the conditions, using integer i,1≦c≦n−m+r and c=p(j)·i+n−m+r if N(j−1)+1≦r≦N(j), where N(j) is definedto be the sum of values from element p(1) to element p(j) of period listP, and moreover, where N(j) is defined to be “0,” and to set as “0”matrix elements that do not satisfy any of these conditions.

According to this configuration, a parity check matrix of m rows and ncolumns can be generated as a group without generating each partialmatrix, such that the conditions are satisfied that, when any two rowsare selected, the two rows have periods that are relatively prime, orwhen the periods are identical, the rows have different phases. Inaddition, a parity check matrix can be generated as a group to contain alower triangular matrix without generating each partial matrix.Accordingly, superior error-correcting characteristics can be realizedin a low-density parity-check code, and a parity check matrix can begenerated by a simple method.

Further, the cost of generating a generator matrix and the cost ofencoding can be reduced compared to a case in which the parity checkmatrix does not include a lower triangular matrix.

The parity check matrix generation program may also be a parity checkmatrix generation program for generating a parity check matrix of m rowsand n columns in low-density parity-check code, and may be configured tocause a computer to execute a process of generating row r of a paritycheck matrix by using period list P={p(1), p(2), . . . , p(PL)} (wherep(1)-p(PL) are relatively prime) and period list Q={q(1), q(2), . . . ,q(QL)} (where q(1)-q(QL) are relatively prime) to: set as “1” thosematrix elements that correspond to columns c that satisfy theconditions, using integer i and a prescribed value F(j), 1≦c≦n−m andc=p(j)·i+r+F(j) if N(j−1)+1≦r≦N(j), where N(j) is defined as the sum ofvalues from element p(1) to element p(j) of period list P, and moreover,N(j) is defined as “0”; to set as “1” those matrix elements thatcorrespond to columns c that satisfy the conditions, using integer i,n−m+1≦c≦n−m+r and c=q(j)·i+n−m+r if M(j−1)+1≦r≦M(j), where M(j) isdefined as the sum of values from element q(1) to element q(j) of periodlist Q, and moreover, M(j) is defined as “0”; and to set as “0” thosematrix elements that do not satisfy any of these conditions. Accordingto this configuration, a parity check matrix of m rows and n columns canbe generated as a group based on two types of period lists such that theconditions are satisfied that, when any two rows are selected, the tworows have periods that are relatively prime, or when the periods areidentical, the two rows have different phases. In addition, a paritycheck matrix can be generated as a group to contain a lower triangularmatrix.

According to the present invention, partial matrix H1 of parity checkmatrix H is generated to satisfy the condition that, when any two rowsare selected, the two rows have periods that are relatively prime, orwhen the periods are identical, the two rows have different phases. Whenthe two rows have periods that are relatively prime, the existence ofcommon columns in the two rows can be prevented. In addition, when thetwo rows have identical periods but have different phases, the existenceof common columns in the two rows can be limited to a maximum of justone common column. As a result, the degradation of the error-correctingcapabilities caused by short loops in a bipartite graph can beprevented. In addition, because rows are generated using a plurality ofperiods that are relatively prime, degradation of error-correctingcapabilities caused by uniformity of row weighting can be prevented.Finally, the generation of partial matrix H1 can be simplified if theperiods and phases are determined. Accordingly, superiorerror-correcting characteristics can be realized in low-density paritycode and a parity check matrix can be generated by a simple method.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing an example of the configuration of adata transmission system;

FIG. 2 is an explanatory view showing an example of a parity checkmatrix of regular LDPC code;

FIG. 3A shows an example of parity check matrix;

FIG. 3B is an explanatory view showing an example of a bipartite graphfor the parity check matrix;

FIG. 4 is a block diagram showing an example of the configuration of atransmission line encoder in which the parity check matrix generationmethod according to the present invention is applied;

FIG. 5 is a flow chart showing an example of the progression ofprocesses by which processor 50 generates partial matrix H1;

FIG. 6 is an explanatory view showing an example of parity check matrixH that is generated by processor 50;

FIG. 7 is a flow chart showing an example of the progression ofprocesses by which processor 50 generates partial matrix H2;

FIG. 8 is an explanatory view showing another example of parity checkmatrix H generated by processor 50;

FIG. 9 is a flow chart showing an example of the progression ofprocesses by which processor 50 generates parity check matrix H; and

FIG. 10 is an explanatory view showing yet another example of paritycheck matrix H generated by processor 50.

EXPLANATION OF REFERENCE NUMERALS

-   50 processor-   51 memory-   52 input/output unit

BEST MODE FOR CARRYING OUT THE INVENTION First Embodiment

Explanation next regards the first embodiment of the present inventionwith reference to the accompanying figures. FIG. 4 is a block diagramshowing an example of the configuration of a transmission line encoderthat applies the parity check matrix generation method according to thepresent invention. As shown in FIG. 4, the transmission line encoderincludes processor 50, memory 51, and input/output unit 52.

In FIG. 4, processor 50 generates a parity check matrix of LDPC code andwrites the generated parity check matrix to memory 51. Processor 50further reads a data string (a message) from memory 51 and subjects thedata string that has been read to LDPC encoding to generate codewords.Processor 50 then supplies the generated codewords to input/output unit52. Memory 51 stores, for example, a parity check matrix and datastrings. Input/output unit 52 supplies codewords from processor 50 tothe outside. For example, input/output unit 52 transmits codewords byway of a transmission line to a transmission line decoder. When a datastring is received as input from the outside, input/output unit 52writes the received data string to memory 51.

Transmission line encoder is equipped with a memory unit (not shown) forstoring various programs for causing processor 50 to execute processesfor generating a parity check matrix and for encoding data strings. Forexample, the memory unit of transmission line encoder stores a paritycheck matrix generation program for causing a computer to execute aprocess for forming parity check matrix H from partial matrix H1 of mrows and k columns and partial matrix H2 of m rows and m columns (wherem=n−k), and a process for determining the positions of matrix elements“1” of each row of partial matrix H1 to satisfy the conditions that,when any two rows contained in partial matrix H1 are selected, theperiods of the two rows are relatively prime, or when the periods of thetwo rows are identical, their phases are different.

In the present embodiment, explanation regards a case in which processor50 generates parity check matrix H of m rows and n columns used in theencoding of LDPC codes, where the message length is k and the codewordlength is n. In this case, m=n−k. In this embodiment, processor 50constructs parity check matrix H from partial matrix H1 of m rows and kcolumns on the left side and partial matrix H2 of m rows and m columnson the right side.

In the present embodiment, processor 50 generates partial matrix H2 as aunit matrix. In addition, processor 50 generates partial matrix H1 as amatrix having matrix elements “1” or “0” in accordance with prescribedconditions. Processor 50 then joins partial matrix H1 and partial matrixH2 to generate parity check matrix H. The following explanation regardsthe process of generating partial matrix H1.

Processor 50 generates partial matrix H1 such that, in each row, matrixelements of positions that are determined by prescribed periods andprescribed phases are “1” and such that other matrix elements are “0.”“Period” here indicates the distance between an element “1” and anotherelement “1” that are contained within a row. In the present embodiment,elements “1” are arranged for each period within a row. In addition,“phase” is the position of the column of the element farthest to theleft among elements “1” that are within a row. Phase assumes a valuefrom 1 to the period. If the period and phase are determined, thepositions of elements “1” and the number of elements “1” within a roware determined.

In the present embodiment, processor 50 generates partial matrix H1 tosatisfy the conditions that, when any two rows contained in partialmatrix H1 are selected, the two rows have periods that are relativelyprime, or when the periods are identical, the two rows have differentphases. When successively generating each row of partial matrix H1,processor 50 selects the period and phase used in generating the nextrow to satisfy either of the two conditions with respect to the periodsand phases of all rows that have been generated to that point.

FIG. 5 is a flow chart showing an example of the progression ofprocesses by which processor 50 generates partial matrix H1. Processor50 sets period list P={p1, p2, . . . , pj} (Step S110). For example,when each element of period list P is applied as input by the user,processor 50 sets period list P that contains each element that has beenapplied as input. Alternatively, for example, when each element isreceived as input in accordance with the host application, processor 50sets period list P that contains each element that has been received asinput. In Step S10, settings are made such that each of the elements ofperiod list P are relatively prime, and such that the sum of the valuesof the elements of period list P is equal to or greater than m.

Processor 50 initializes each variable used in the generation of eachrow of partial matrix H1 (Step S120). In the present embodiment, periodvariable a that indicates period, variable b, and generation-target rownumber r, which indicates the row that is the object of generation amongeach of the rows of partial matrix H1, are used as variables. In thepresent embodiment, moreover, the value of variable b coincides with theposition of the element farthest to the left among elements “1” of eachrow.

Thus, in the present embodiment, variable b plays the role of a phasevariable that indicates phase.

In Step S120, processor 50 sets the leading element p1 of period list Pas the initial value of period variable a and sets the initial value ofvariable b to “1.” Processor 50 further sets the initial value ofgeneration-target row number r to “1.”

Processor 50 generates the row that corresponds to generation-target rownumber r (Step S121). In Step S121, processor 50 uses the generationequation c=a·i+b to generate row r of partial matrix H1. Processor 50generates row r by setting the matrix elements located in columns c thatare indicated by generation equation c=a·i+b to “1” and setting theother matrix elements to “0.” In this case, “i” is an integer.

Processor 50 next determines whether the generated row r is the last rowof partial matrix H1 (Step S122). If the generated row r is determinedto be the last row, processor ends the process of generating partialmatrix H1. If the generated row r is determined not to be the last row,processor 50 updates variable b and generation-target row number r (StepS123). In Step S123, processor 50 adds “1” to generation-target rownumber r. Processor 50 further adds “1” to variable b.

Upon updating variable b, processor 50 determines whether variable b isequal to or less than period variable a (Step S124). If “b” isdetermined to be equal to or less than “a,” processor 50 returns to theprocess of Step S121 and repeatedly executes the processes from StepS121.

Upon determining that b is not less than or equal to a, processor 50updates period variable a (Step S125). In Step S125, processor 50 readsthe value of the next element from period list P to set this value toperiod variable a. Processor 50 further sets the value of variable bto 1. Processor 50 then returns to the process of Step S121 andrepeatedly executes the processes from Step S121.

FIG. 6 is an explanatory view showing an example of parity check matrixH generated by processor 50. Parity check matrix H shown in FIG. 6 is amatrix that has been generated with message length set to k=12 andcodeword length set to n=20. Accordingly, as shown in FIG. 6, the numberof rows of parity check matrix H is m=n−k=8. In addition, as shown inFIG. 6, processor 50 generates partial matrix H2 in parity check matrixH as a unit matrix. Partial matrix H1 within parity check matrix H isset to period list P={3, 4, 5} in Step S110 and generated according tothe process shown in FIG. 2.

For example, in Step S120, processor 50 sets leading element 3 of periodlist P as the initial value of period variable a and sets the initialvalues of variable b and generation-target row number r to “1.” In StepS121, processor 50 uses these variables a and b to find each of c=1, 4,7, and 10 for i=0, 1, 2, and 3, respectively. Then, as shown in FIG. 6,processor 50 sets the elements of the first, fourth, seventh, and tenthcolumns among the elements of the first row of partial matrix H1 to “1”and the other elements to “0” to generate the row.

In Step S123, when variable b and generation process object row number rare each updated to “2”, processor 50 uses period variable a=3 andvariable b=2 to find each of c=2, 5, 8, and 11 for i=0, 1, 2, and 3,respectively. Processor 50 then sets the elements of the second, fifth,eighth, and eleventh columns among the elements of the second row ofpartial matrix H1 to “1” and sets the other elements to “0” to generatethe row, as shown in FIG. 6.

When the third row of partial matrix H1 is generated and variable b isupdated to “4,” processor 50 determines whether variable b=4 is not lessthan or equal to variable a=3, and then updates period variable a to “4”in Step S124. Processor 50 then uses period variable a=4 to generate thefourth to seventh rows of partial matrix H1 as shown in FIG. 6.

Upon generating the eighth row of partial matrix H1, processor 50determines that the generated row r=8 is the last row and terminates theprocess. Partial matrix H1 is thus generated by the above-describedprocedure. Processor 50 then joins partial matrix H1 and partial matrixH2 to generate parity check matrix H shown in FIG. 6.

As shown in FIG. 6, in partial matrix H1 in the present example, rowsexist that correspond to all phases (phases from 1 to the value of theperiod) for period 3 and period 4, but only a row corresponding to phase1 exists for period 5.

As shown in FIG. 6, the periods of any row of the first to third rows ofpartial matrix H1, any row of the fourth to seventh rows, and the eighthrow are all relatively prime, and no more than one common column exists.In addition, when any two rows of the first to third rows are selected,the periods for both are identical at “3,” but the phases for the twodiffer and no common column exists. Similarly, when any two rows of thefourth to seventh rows are selected, the periods are identical at “4,”but the phases differ and no common column exists.

In Step S121, c=a·i+k+r may be used as the generation equation insteadof using the condition c=a·i+b as the generation equation. By adoptingthis form, the phases of partial matrices H1 and H2 can be combined whenthe entirety of parity check matrix H is seen.

In addition, although period list P contains a plurality of elements,this plurality of elements can also be generated from a singleparameter. For example, the elements of period list P satisfy not onlythe condition of being relatively prime, but also satisfy the conditionof being in a rising progression. When the elements of period list P aredefined to be the smallest value of the values that satisfy twoconditions, merely determining the leading element p1 as a parameterenables the determination of each element of the entirety of period listP.

Alternatively, if elements p1 other than the leading element p1 are eachdefined to be the smallest prime number of prime numbers that aregreater than the preceding element p(i−1), merely determining theleading element p1 enables the determination of the entirety of periodlist P.

Although a case was described in the present embodiment in which all ofperiod list P was set in Step S110, each element may be definitivelyderived by adopting a definition for generating each element of periodlist P from a single parameter. In such a case, processor 50 maygenerate elements of period list P with each update of period variable ain Step S125. For example, processor 50 may set only element p1 in StepS110 and then find the next value that satisfies the defined conditionin Step S125. By adopting this approach, an operation can be realizedthat is essentially equivalent to setting the entirety of period list Pin Step S10.

In the present embodiment, moreover, a case was described in which thetransmission line encoder generated parity check matrix H for use inLDPC encoding, but the parity check matrix generation method can also beapplied to a case in which a transmission line decoder generates paritycheck matrix H for use in decoding codewords.

As described above, according to the present embodiment, parity checkmatrix H of m rows and n columns used in low-density parity-check codesis made up from partial matrix H1 of m rows and k columns on the leftside and partial matrix H2 of m rows and m columns on the right side. Inaddition, processor 50 generates partial matrix H1 to satisfy theconditions that, when any two rows contained in partial matrix H1 areselected, the two rows have periods that are relatively prime (conditiona) or when the periods are identical, have phases that differ (conditionb).

According to the present embodiment, processor 50 generates partialmatrix H2 as a unit matrix.

Common columns never occur in any two rows of the rows of parity checkmatrix H that contains the rows of partial matrix H1 that have beengenerated according to condition b. As a result, the occurrence of shortloops having a length of 4 can be prevented, and the degradation oferror-correcting capabilities caused by short loops in a bipartite graphcan be prevented.

Further, common columns occur for each least common multiple of theperiod in any two rows of parity check matrix H that contains the rowsof partial matrix H1 that have been generated according to condition a.In this case, the periods of the two rows are relatively prime, and theleast common multiple is therefore the product of the periods. Ifperiods are selected such that the product of the periods is equal to orgreater than k, the number of common columns that occur in the two rowscan be limited to just one. As a result, the occurrence of short loopshaving a length of 4 can be prevented, and degradation oferror-correcting capabilities caused by short loops on a bipartite graphcan be prevented.

Further, the use of a plurality of periods that are relatively prime togenerate rows enables non-uniform row weighting, whereby the degradationof error-correcting capabilities caused by uniformity of row weightingcan be prevented.

Still further, if period and phase are determined, partial matrix H1 canbe easily generated by using a simple generation equation. Accordingly,superior error-correcting characteristics can be realized in low-densityparity-check codes, and parity check matrix H can be generated by asimple method. In addition, because partial matrix H1 can be generatedby a simple method, the cost of generating a parity check matrix can bereduced.

According to the present embodiment, partial matrix H2 is generated as aunit matrix, and an input message becomes a portion of codewords. As aresult, when processor 50 carries out LDPC encoding, only redundancyportions that are added to the input message need be calculated, and thecost of generating a generator matrix and the cost of encoding can bereduced compared to a case in which parity check matrix H does notinclude a unit matrix.

Second Embodiment

Explanation next regards the second embodiment of the present inventionwith reference to the accompanying figures. In this embodiment, theconfiguration of the transmission line encoder is the same as thetransmission line encoder shown in the first embodiment. In the presentembodiment, processor 50 of the transmission line encoder generatespartial matrix H1 according to the same process as in the firstembodiment. In the present embodiment, moreover, processor 50 generatespartial matrix H2 as a lower triangular matrix.

FIG. 7 is a flow chart showing an example of the progression ofprocesses by which processor 50 generates partial matrix H2. In thepresent embodiment, processor 50 uses a different generation equation togenerate each row in Step S221 shown in FIG. 7 than in Step S121 of thefirst embodiment. The processes other than that of Step S221 are thesame as the processes shown in the first embodiment.

In Step S221, processor 50 uses generation equation c=a·i+r to generaterow r of partial matrix H2. Processor 50 generates row r by setting to“1” those matrix elements located in columns c that are represented bygeneration equation c=a·i+r and setting the other matrix elements to“0.” In this case, “i” is “0” or a negative integer. Period list P maybe identical when generating partial matrix H1 and when generatingpartial matrix H2, or may differ.

FIG. 8 is an explanatory view showing another example of parity checkmatrix H that is generated by processor 50. As with parity check matrixH shown in FIG. 6, parity check matrix H shown in FIG. 8 is generatedwith message length set to k=12, codeword length set to n=20, and thenumber of rows of parity check matrix H set to m=8. In addition, partialmatrices H1 and H2 shown in FIG. 8 are both generated with period listP={4, 5}. As shown in FIG. 8, processor 50 generates partial matrix H2as a lower triangular matrix according to the procedure shown in FIG. 7.

As shown in FIG. 8, partial matrix H2 can be easily generated as a lowertriangular matrix by generating each row to satisfy the conditions that,when any two rows contained in partial matrix H2 are selected, the tworows have periods that are relatively prime, or when the periods areidentical, the two rows have phases that are different, as in thegeneration of partial matrix H1.

Although a case was described in the present embodiment in which partialmatrix H2 is a lower triangular matrix, the same error-correctingcapabilities are realized when any of the rows and columns of paritycheck matrix H are substituted. For example, the elements contained inparity check matrix H may be inverted vertically such that partialmatrix H2 becomes an upper triangular matrix, and the meaning of LDPCencoding is unchanged. Alternatively, the elements contained in paritycheck matrix H may be inverted horizontally such that the portion of mrows and m columns on the left side of parity check matrix H becomes atriangular matrix, and the meaning of LDPC encoding is unchanged.

Alternatively, the plurality of elements of period list P may begenerated from a single parameter. For example, the elements of periodlist P may also be defined as the smallest values that satisfy not onlythe condition of being relatively prime, but also the condition of beingin a rising progression. By adopting this approach, simply determiningleading element p1 as a parameter enables the determination of eachelement of the entirety of period list P. Alternatively, if elements p1other than leading element p1 are each defined to be the smallest primenumber of the prime numbers greater than the preceding element p(i−1),merely determining leading element p1 enables the determination of theentirety of period list P.

When generating partial matrix H2, period list P is set to P={p} tocontain only one element, and when element p is set to a value equal toor greater than m, processor 50 generates partial matrix H2 as a unitmatrix. Accordingly, when settings are made such that period list P={p},and moreover, such that p is equal to or greater than m, parity checkmatrix H similar to the first embodiment can be generated.

Although a case has been described in the present embodiment in whichthe transmission line encoder generates parity check matrix H for use inLDPC encoding, the parity check matrix generation method can also beapplied to a case in which a transmission line decoder generates paritycheck matrix H for use in decoding codewords.

According to the present embodiment as described hereinabove, partialmatrix H2 is generated as a lower triangular matrix or a unit matrix byprocessor 50. When partial matrix H2 is generated as a lower triangularmatrix, common columns never occur in any two rows of parity checkmatrix H that has been generated according to condition b. As a result,the occurrence of short loops having a length of 4 can be prevented, andthe degradation of error-correcting capabilities caused by short loopsin a bipartite graph can be prevented.

When partial matrix H2 is generated as a lower triangular matrix, commoncolumns occur for each least common multiple of the periods in any tworows of parity check matrix H that has been generated according tocondition a. In this case, the periods of the two rows are relativelyprime, and the least common multiple is therefore the product of theperiods. If periods are selected such that the product of the periods isequal to or greater than n, the number of common columns that occur intwo rows of partial matrix H1 can be limited to just one, and the numberof common columns that occur in two rows of partial matrix H2 can alsobe limited to just one. As a result, the occurrence of short loopshaving a length of 4 can be prevented, and the degradation of theerror-correcting capabilities that is caused by short loops in abipartite graph can be prevented.

When partial matrix H2 is generated as a unit matrix, common columnsnever occur in any two rows of parity check matrix H that has beengenerated according to condition b. As a result, the occurrence of shortloops having a length of 4 can be prevented, and the degradation oferror-correcting capabilities caused by short loops in a bipartite graphcan be prevented.

When partial matrix H2 is generated as a unit matrix, common columnsoccur with each least common multiple of periods in any two rows ofparity check matrix H that has been generated according to condition a.In this case, the periods of the two rows are relatively prime, and theleast common multiple is therefore the product of the periods. Ifperiods are selected such that the product of the periods is equal to orgreater than k, the occurrence of common columns in two rows of paritycheck matrix H can be limited to just one. As a result, the occurrenceof short loops having a length of 4 can be prevented, and thedegradation of error-correcting capabilities caused by the short loopsin a bipartite graph can be prevented.

According to the present embodiment, partial matrix H2 is generated as alower triangular matrix or as a unit matrix, and input messages aretherefore portions of codewords without alteration. Thus, when carryingout LDPC encoding, processor 50 need calculate only the redundancyportions that are added to input messages, whereby a reduction in thecost of generating a generator matrix and the cost of encoding can berealized compared to a case in which parity check matrix H does notcontain a unit matrix or a lower triangular matrix.

Third Embodiment

Explanation next regards the third embodiment of the present inventionwith reference to the accompanying figures. In the present embodiment,the configuration of the transmission line encoder is the same as thetransmission line encoder shown in the first embodiment and in thesecond embodiment. In the present embodiment, processor 50 of thetransmission line encoder does not generate partial matrix H1 andpartial matrix H2 separately, but rather, generates partial matrix H1and partial matrix H2 simultaneously.

FIG. 9 is a flow chart showing an example of the progression ofprocesses by which processor 50 generates parity check matrix H. In thepresent embodiment, processor 50 uses a generation equation that differsfrom the equations used in the first embodiment and the secondembodiment to generate each row in Step S321 shown in FIG. 9. Inaddition, the processes other than Step S321 are the same as theprocesses of the first embodiment and the second embodiment.

In Step S321, processor 50 uses generation equation c=a·i+k+r togenerate parity check matrix H. Processor 50 generates row r by settingmatrix elements located in columns c represented by generation equationc=a·i+k+r to “1” and setting the other matrix elements to “0.” In thiscase, “i” is 0 or a negative integer.

FIG. 10 is an explanatory view showing yet another example of paritycheck matrix H that is generated by processor 50. Parity check matrix Hshown in FIG. 10 is a matrix generated with the message length set tok=12, the codeword length set to n=20, and the number of rows of paritycheck matrix H set to m=8, as with parity check matrix H shown in FIG. 6and FIG. 8. Further, parity check matrix H shown in FIG. 10 is a matrixgenerated by setting period list P={4, 5} in Step S10.

As shown in FIG. 10, processor 50 generates each row in accordance withthe procedure shown in FIG. 9 to satisfy conditions such that, when anytwo rows contained in parity check matrix H are selected, the two rowshave periods that are relatively prime, or when the periods areidentical, such that the two periods have different phases.

Accordingly, the occurrence of a common column in any two rows can beprevented, or the occurrence of a common column can be limited to justone. Alternatively, as shown in FIG. 10, partial matrix H2 within paritycheck matrix H is generated as a lower triangular matrix according tothe procedure shown in FIG. 9.

Although an example is described in the present embodiment in whichpartial matrix H2 within parity check matrix H is a lower triangularmatrix, the error-correcting characteristics are the same even when anyrows or columns of parity check matrix H are substituted. For example,elements contained in parity check matrix H may be inverted verticallysuch that partial matrix H2 is an upper triangular matrix, and themeaning of the LDPC encoding is unchanged. Alternatively, the elementscontained in parity check matrix H may be inverted horizontally suchthat the portion of m rows and m columns on the left side of paritycheck matrix H becomes a triangular matrix, and the meaning of LDPCencoding is unchanged.

In the present embodiment, by executing processing according to theprocedure shown in FIG. 9, processor 50 generates parity check matrix Haccording to the following conditions. Period list P that is set in StepS100 is defined as P={p(1), p(2), . . . , p(PL)}, and N(j) is defined asthe sum of the values of the first to jth elements of period list P. Inaddition, N(0) is defined as N(0)=0. When generation-target row number rsatisfies the relation N(j−1)+1≦r≦N(j), processor 50 uses periodvariable a=p(j) to generate row r such that matrix elements of columns cthat satisfy the relations 1≦c≦n−m+r and c=p(j)·i+n−m+r are “1” andother matrix elements are “0.” In this case, “i” is an integer.

Although a case has been described in the present embodiment in whichelements of columns c that satisfy the relations 1≦c≦n−m+r andc=p(j)·i+n−m+r are set to “1” in Step S321, the conditions for settingelements to “1” is not limited to form shown in this embodiment. Forexample, when generation-target row number r satisfies the relationN(j−1)+1≦r≦N(j), processor 50 may use a prescribed value F(j) determinedusing element number j of period list P to determine the elements thatare to be set to “1.” In such a case, processor 50 generates row r inStep S321 by setting to “1” matrix elements that are located in columnsc that satisfy the relations 1≦c≦n−m and c=p(j)·i+r+F(j) and columns cthat satisfy the relation c=n−m+r, and setting the other matrix elementsto “0.” By adopting this method, the portion corresponding to H2 withinparity check matrix H can be generated as a unit matrix.

As an example, F(j)=−N(j−1) may be used as value F(j) that is determinedusing element number j. Alternatively, F(j)=n−m may be used. Although anexample was described in the present embodiment in which only one periodlist is set in Step S110, the number of period lists that are set is notlimited to one. For example, period list Q={q(1), q(2), . . . , q(QL)}may be set in addition to period list P in Step S110. In this case, M(j)may be defined as the sum of the values of the first to jth elements oflist Q, and M(0) may be defined as M(0)=0. Processor 50 may then usethese two conditions to determine elements that are to be set to “1.”

For example, when generation-target row number r satisfies the relationN(j−1)+1≦r≦N(j), processor 50 sets to “1” those matrix elements that arelocated in columns c that satisfy the relations 1≦c≦n−m andc=p(j)·i+r+F(j) in Step S321. Further, when generation-target row numberr satisfies the relation M(j−1)+1≦r≦M(j), processor 50 sets to “1” thosematrix elements that are located in columns c that satisfy the relationsn−m+1≦c≦n−m+r and c=q(j)·i+n−m+r, and then sets the other matrixelements to “0” to thus generate row r. F(j)=−N(j−1) may be used asF(j), or F(j)=n−m may be used.

The plurality of elements of period list P may also be generated from asingle parameter. For example, the elements of period list P may bedefined as the smallest values of the values that satisfy the twoconditions of being not only relatively prime, but also of being in arising progression. By adopting this method, the determination of onlyleading element p1 as a parameter enables the determination of eachelement of the entirety of period list P. Alternatively, elements p(j)other than leading element p1 may each be defined as the smallest primenumber of the prime numbers that are greater than the preceding elementp(j−1) to thereby enable the determination of the entirety of periodlist P by determining only leading element p1.

Although an example was described in the present embodiment in whichtransmission line encoder generates parity check matrix H for use inLDPC encoding, the parity check matrix generation method may also beapplied to a case in which transmission line decoder generates paritycheck matrix H for use in decoding codewords.

As described in the preceding explanation, according to the presentembodiment, instead of being generated for each partial matrix, a paritycheck matrix can be generated as a group such that the conditions aresatisfied that, when any two rows are selected, the two rows haveperiods that are relatively prime, or when the periods are identical,the two rows have phases that are different. Further, instead ofgenerating each partial matrix, a parity check matrix can be generatedas a group to contain a lower triangular matrix or a unit matrix. As aresult, superior error-correcting characteristics can be realized inlow-density parity-check codes, and a parity check matrix can begenerated by a simple method. In addition, the cost of generating agenerator matrix and cost of encoding can be decreased compared to acase in which the parity check matrix does not contain a lowertriangular matrix or a unit matrix.

Fourth Embodiment

Explanation next regards the fourth embodiment of the present inventionwith reference to the accompanying figures. In the present embodiment, adata transmission system is described that applies any of thetransmission line encoders and transmission line decoders shown in thefirst to third embodiments. The configuration of the data transmissionsystem according to the present invention is identical to theconfiguration shown in FIG. 1. When data generator 10 generates a datastring that is to be transmitted, the generated data string is suppliedas output to transmission line encoder 11. In other words, datagenerator 10 supplies a generated data string to transmission lineencoder 11.

Transmission line encoder 11 is equipped with any configuration forrealizing the parity check matrix generation method described in thefirst to third embodiments. For example, a parity check matrixgeneration program for generating a parity check matrix is installed intransmission line encoder 11. Transmission line encoder 11 generatesparity check matrix H based on period list P. Transmission line encoder11 further uses parity check matrix H that has been generated to convertthe data string that has been supplied from data generator 10 tocodewords. Transmission line encoder 11 then transmits the codewords byway of transmission line 12 to transmission line decoder 13.

Transmission line decoder 13 is equipped with a configuration forrealizing the parity check matrix generation method. For example, aparity check matrix generation program for generating a parity checkmatrix is installed in transmission line decoder 13. Transmission linedecoder 13 generates parity check matrix H based on period list P. Inaddition, transmission line decoder 13 uses parity check matrix H thathas been generated to restore the original data string from the receivedcodewords in accordance with a sum-product decoding method. Transmissionline decoder 13 then supplies the restored data string to data-consumingdevice 14. In other words, transmission line decoder 13 supplies therestored data string to data-consuming device 14.

Data-consuming device 14 consumes the data string that has been suppliedfrom transmission line decoder 13. In other words, data-consuming device14 processes the data string that has been supplied to perform displayor output.

For example, when the data transmission system is a system fortransmitting video data, data generator 10 is a video encoder, and thedata string generated by data generator 10 is a bitstream.Data-consuming device 14 is a video decoder.

Transmission line encoder 11 and transmission line decoder 13 each usethe same period list P. As a method of maintaining the unity of periodlist P, a method may be used for conferring the same period list P as aninitial value to each of transmission line encoder 11 and transmissionline decoder 13. Alternatively, when period list P is conferred byoutside input, period list P that is applied as input from the outsidemay be reported to each of transmission line encoder 11 and transmissionline decoder 13 following which each of transmission line encoder 11 andtransmission line decoder 13 may use the reported period list P.

Alternatively, a method may be used in which transmission line encoder11 sets period list P, following which transmission line encoder 11transmits (reports) the period list P that has been set to transmissionline decoder 13 by way of transmission line 12. In this case, theoptimum values of period list P differ depending on the error-generationmodel of transmission line 12. Transmission line encoder 11 may transmit(report) the period list P with each transmission of codewords, or maytransmit (report) period list P only when period list P is updated. Whenupdating of period list P is carried out for each of predeterminedprescribed time intervals, transmission line encoder 11 may transmit(report) period list P after updating to transmission line decoder 13with each prescribed time interval.

Transmission line decoder 13 is the first to detect the error-occurrencestate of transmission line 12, and transmission line decoder 13 maytherefore carry out the settings of period list P. In this case,transmission line encoder 11 does not transmit period list P totransmission line decoder 13, but rather, transmission line decoder 13transmits (reports) period list P to transmission line encoder 11 by wayof transmission line 12.

When a definition has been adopted for generating each of the elementsof period list P from a single parameter and each of the elementsfollowing a leading element can thus be determined based on the leadingelement of period list P, transmission line encoder 11 or transmissionline decoder 13 may transmit (report) only the leading element. Forexample, a configuration is also possible in which, by defining theelements of period list P as the smallest values among the values thatsatisfy the two conditions that the elements not only be relativelyprime, but further, that the elements be in a rising progression, eachelement of the entirety of period list P can be determined if onlyleading element p1 is determined. Alternatively, a configuration ispossible in which, by defining elements p(j) other than the leadingelement p1 as each being the smallest prime number among prime numbersgreater than the preceding element p(j−1), the entirety of period list Pcan be determined if only leading element p1 is determined.

When a change in the size of the parity check matrix is desired,transmission line encoder 11 may transmit (report) the number of rowsand the number of columns of the parity check matrix followingalteration to transmission line decoder 13 by way of transmission line12. Alternatively, when a change of the size of the parity check matrixis desired, transmission line decoder 13 may transmit (report) thenumber of rows and the number of columns of the parity check matrixafter alteration to transmission line encoder 11 by way of transmissionline 12.

According to the present embodiment as described hereinabove,transmission line encoder 11 and transmission line decoder 13 in a datatransmission system use any of the parity check matrix generationmethods described in the first to third embodiments to generate a paritycheck matrix. Accordingly, superior error-correcting characteristics canbe realized in low-density parity-check codes, and a parity check matrixcan be generated by a simple method. In addition, the cost of generatinga generator matrix and the cost of encoding can be reduced compared to acase in which the parity check matrix does not contain a lowertriangular matrix or a unit matrix.

According to the present embodiment, a parity check matrix can bedetermined once the period list P or the leading element of period listP is known. As a result, if either one of transmission line encoder 11and transmission line decoder 13 reports the period list P or theleading element to the other, transmission line encoder 11 andtransmission line decoder 13 can share the same parity check matrix.

In addition, when the size of a parity check matrix is to be changed, ifeither one of transmission line encoder 11 and transmission line decoder13 reports the matrix size to the other, the size of the parity checkmatrix can be easily altered. Accordingly, the optimum parity checkmatrix for transmission at the time of data transmission can be easilyused even in the event of changes in the characteristics of transmissionline 12 or the state of congestion of a packet exchange network.

Potential for Use in the Industry

The parity check matrix generation method according to the presentinvention can be applied when a transmission line encoder included in adata transmission system generates a parity check matrix used for LDPCencoding of a data string. The parity check matrix generation method canalso be applied when a transmission line decoder included in a datatransmission system generates a parity check matrix for use in decodingcodewords that have been received.

1. A parity check matrix generation method for generating a parity check matrix of m rows and n columns in a low-density parity-check code, wherein: row r of a parity check matrix is generated by using period list P={p(1), p(2), . . . , p(PL)} (where p(1)-p(PL) are relatively prime) to: set as “1” matrix elements that correspond to columns c that satisfy conditions, using integer i and prescribed value F(j), 1≦c≦n−m and c=p(j)·i+r+F(j) if N(j−1)+1≦r≦N(j), where N(j) is defined as a sum of values from element p(1) to element p(j) of said period list P, and moreover, N(j) is defined as “0”; to set as “1” matrix elements that correspond to columns c that satisfy a condition c=n−m+r; and to set as “0” matrix elements that do not satisfy any of said conditions.
 2. The parity check matrix generation method according to claim 1, wherein F(j)=−N(j−1).
 3. The parity check matrix generation method according to claim 1, wherein F(j)=n−m.
 4. A parity check matrix generation method for generating a parity check matrix of m rows and n columns in low-density parity-check codes; wherein: row r of a parity check matrix is generated by using period list P={p(1), p(2), . . . , p(PL)} (where p(1)-p(PL) are relatively prime) to: set as “1” matrix elements that correspond to columns c that satisfy conditions, using integer i, 1≦c≦n−m+r and c=p(j)·i+n−m+r if N(j−1)+1≦r≦N(j), where N(j) is defined as a sum of values from element p(1) to element p(j) of said period list P, and moreover, N(j) is defined as “0”; and to set as “0” matrix elements that do not satisfy any of said conditions.
 5. A parity check matrix generation method for generating a parity check matrix of m rows and n columns in low-density parity-check codes; wherein: row r of a parity check matrix is generated by using period list P={p(1), p(2), . . . , p(PL)} (where p(1)-p(PL) are relatively prime) and period list Q={q(1), q(2), . . . , q(QL)} (where q(1)-q(QL) are relatively prime) to: set as “1” matrix elements that correspond to columns c that satisfy conditions, using integer i and a prescribed value F(j), 1≦c≦n−m and c=p(j)·i+r+F(j) if N(j−1)+1≦r≦N(j), where N(j) is defined as a sum of values from element p(1) to element p(j) of said period list P, and moreover, N(j) is defined as “0”; to set as “1” matrix elements that correspond to columns c that satisfy conditions, using integer i, n−m+1≦c≦n−m+r and c=q(j)·i+n−m+r if M(j−1)+1≦r≦M(j), where M(j) is defined as a sum of values from element q(1) to element q(j) of period list Q, and moreover, M(j) is defined as “0”; and to set as “0” matrix elements that do not satisfy any of said conditions.
 6. The parity check matrix generation method according to claim 5, wherein F(j)=−N(j−1).
 7. The parity check matrix generation method according to claim 5, wherein F(j)=n−m.
 8. The parity check matrix generation method according to claim 1, claim 4 or claim 5, wherein period list P is determined by generating elements from element p(2) to element p(PL) based on leading element p(1).
 9. The parity check matrix generation method according to claim 8, wherein elements p(j) of period list P are generated such that elements p(j) are the smallest values among values that satisfy a condition of being relatively prime with all preceding elements from element p(1) to element p(j−1).
 10. The parity check matrix generation method according to claim 8, wherein elements p(j) of period list P are generated such that elements p(j) are the smallest values among values that each satisfy a condition of being a prime number greater than preceding element p(j−1).
 11. The parity check matrix generation method according to claim 4, wherein period list P is determined by generating elements from element p(2) to element p(PL) based on leading element p(1).
 12. The parity check matrix generation method according to claim 5, wherein period list P is determined by generating elements from element p(2) to element p(PL) based on leading element p(1).
 13. A data transmission system that includes: an encoding device for encoding data and a decoding device for decoding data that have been encoded; wherein: said encoding device, based on prescribed parameters, uses the parity check matrix generation method described in claim 1 to generate a parity check matrix, uses the generated parity check matrix to perform low-density parity encoding to convert data to codewords, and transmits the converted codewords to said decoding device by way of a transmission line; and said decoding device, based on parameters identical to the parameters used by said encoding device, uses said parity check matrix generation method to generate a parity check matrix, and uses the generated parity check matrix to decode codewords that have been received from said encoding device to convert to the data that preceded encoding.
 14. A data transmission system that includes: an encoding device for encoding data and a decoding device for decoding data that have been encoded; wherein: said encoding device, based on prescribed parameters, uses the parity check matrix generation method described in claim 4, to generate a parity check matrix, uses the generated parity check matrix to perform low-density parity encoding to convert data to codewords, and transmits the converted codewords to said decoding device by way of a transmission line; and said decoding device, based on parameters identical to the parameters used by said encoding device, uses said parity check matrix generation method to generate a parity check matrix, and uses the generated parity check matrix to decode codewords that have been received from said encoding device to convert to the data that preceded encoding.
 15. A data transmission system that includes: an encoding device for encoding data and a decoding device for decoding data that have been encoded; wherein: said encoding device, based on prescribed parameters, uses the parity check matrix generation method described in claim 5 to generate a parity check matrix, uses the generated parity check matrix to perform low-density parity encoding to convert data to codewords, and transmits the converted codewords to said decoding device by way of a transmission line; and said decoding device, based on parameters identical to the parameters used by said encoding device, uses said parity check matrix generation method to generate a parity check matrix, and uses the generated parity check matrix to decode codewords that have been received from said encoding device to convert to the data that preceded encoding.
 16. An encoding device for: based on prescribed parameters, using the parity check matrix generation method according to claim 1, to generate a parity check matrix; and using the generated parity check matrix to perform low-density parity encoding to convert data to codewords, and transmitting the converted codewords to a decoding device by way of a transmission line.
 17. An encoding device for: based on prescribed parameters, using the parity check matrix generation method according to claim 4 to generate a parity check matrix; and using the generated parity check matrix to perform low-density parity encoding to convert data to codewords, and transmitting the converted codewords to a decoding device by way of a transmission line.
 18. An encoding device for: based on prescribed parameters, using the parity check matrix generation method according to claim 5 to generate a parity check matrix; and using the generated parity check matrix to perform low-density parity encoding to convert data to codewords, and transmitting the converted codewords to a decoding device by way of a transmission line.
 19. A decoding device for: receiving codewords from an encoding device by way of a transmission line; and based on prescribed parameters, using the parity check matrix generation method according to claim 1, to generate a parity check matrix, and using the generated parity check matrix to decode said received codewords and convert to data that preceded encoding.
 20. A decoding device for: receiving codewords from an encoding device by way of a transmission line; and based on prescribed parameters, using the parity check matrix generation method according to claim 4, to generate a parity check matrix, and using the generated parity check matrix to decode said received codewords and convert to data that preceded encoding.
 21. A decoding device for: receiving codewords from an encoding device by way of a transmission line; and based on prescribed parameters, using the parity check matrix generation method according to claim 5 to generate a parity check matrix, and using the generated parity check matrix to decode said received codewords and convert to data that preceded encoding. 